import { defineStore } from 'pinia'
import { computed, ref } from 'vue'

// defineStore 执行以后创建出来的, 不是仓库本地, 而是一个可以被执行来获取仓库的函数
export const useCounterStore = defineStore('counter', () => {
    // state
    const count = ref(0)
    const name = 'tom'
    const token = '12345'
    // mutations
    const updateCount = () => {
        count.value ++
    }
    // actions
    const asyncUpdateCount = () => {
        setTimeout(() => {
            count.value ++
        }, 1000);
    }
    // getters
    const count666 = computed(()=>{
        return count.value * 666
    })

    // 所有东西如果需要被外部使用, 都需要放在 return 对象当中
    return {
        count,
        updateCount,
        asyncUpdateCount,
        count666,
        name,
        token
    }
})